package com.ct.application.order.model.vo;

import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 订单表
 *
 * @author system
 */
@Data
@Accessors(chain = true)
public class OrderVO implements Serializable {

    private static final long serialVersionUID=1L;


    /**
     * 主键id
     */
    private Long id;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;


    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 用户id
     */
    private Long memberId;

    /**
     * 交易id
     */
    private Long tradeId;

    /**
     * 接单门店id
     */
    private Long shopId;

    /**
     * 接单门店名称
     */
    private String shopName;

    /**
     * 门店地址
     */
    private String shopAddress;

    /**
     * 经度
     */
    private String contactLongitude;

    /**
     * 纬度
     */
    private String contactLatitude;

    /**
     * 接单门店logo
     */
    private String shopLogoImg;

    /**
     * 商品总数量
     */
    private Integer goodsTotalQuantity;

    /**
     * 商品总金额
     */
    private BigDecimal goodsTotalPrice;

    /**
     * 包装费
     */
    private BigDecimal packingCharges;

    /**
     * 配送费
     */
    private BigDecimal deliveryFee;

    /**
     * 实付款
     */
    private BigDecimal actualPrice;

    /**
     * 购物方式 1=自取 2=配送
     */
    private Integer shoppingWay;

    /**
     * 取餐号
     */
    private String queueNo;

    /**
     * 联系人姓名
     */
    private String contactRealname;


    /**
     * 联系电话
     */
    private String contactPhone;

    /**
     * 省份
     */
    private String contactProvince;

    /**
     * 城市
     */
    private String contactCity;

    /**
     * 区/县
     */
    private String contactArea;

    /**
     * 详细地址(具体到街道门牌号)
     */
    private String contactStreet;

    /**
     * 备注
     */
    private String remark;

    /**
     * 订单状态。10=未付款 20=待处理 30=待自取(已处理) 40=待配送(已处理) 50=已配送 60=已完成 70=售后处理中 80=售后处理完成 90=已取消(未支付) 100=已取消(已支付)
     */
    private Integer status;

    /**
     * (未支付)订单取消原因 1=您主动取消 2=订单超时未支付 3=系统异常
     */
    private Integer cancelReason;

    /**
     * 支付截止时间(五分钟内未付款的订单会被自动关闭)
     */
    private Date paymentDeadline;

    /**
     * 支付成功时间
     */
    private Date paymentSuccessTime;

    /**
     * 订单完成时间
     */
    private Date orderCompletionTime;

    /**
     * 支付方式 1=微信支付 2=支付宝
     */
    private Integer paymentType;

    /**
     * 餐具数量，值是-1:按照餐量提供，其它值是多少表示几份餐具
     */
    private Integer tablewareNumber;

    /**
     * 订单是否评价，0=未评价 1=已评价
     */
    private Integer orderAppraise;

    /**
     * 订单商品详情
     */
    private List<OrderDetailVO> children;

    /**
     * 系统ID
     */
    private Long systemId;

}
